package com.helin.helinhealth.config;

import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.WxMaConfig;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;

/**
 * 微信小程序配置类
 * 
 * <p>
 * 该配置类用于初始化和配置微信小程序相关的服务，
 * 主要包括WxMaService的创建和配置，用于处理微信小程序的登录认证、
 * 用户信息获取等操作。
 * </p>
 */
@Slf4j
@Configuration
public class WxMaConfiguration {

    /**
     * 环境变量，用于获取配置信息
     */
    @Autowired
    private Environment environment;

    /**
     * 创建微信小程序服务对象
     * 
     * @return 微信小程序服务实例
     */
    @Bean
    public WxMaService wxMaService() {
        // 创建微信小程序默认配置
        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
        
        // 从配置文件中获取appid和secret
        String appid = environment.getProperty("wechat.miniapp.appid");
        String secret = environment.getProperty("wechat.miniapp.secret");
        
        // 设置appid和secret
        config.setAppid(appid);
        config.setSecret(secret);
        
        // 创建微信小程序服务
        WxMaService wxMaService = new WxMaServiceImpl();
        wxMaService.setWxMaConfig(config);
        
        log.info("微信小程序配置加载完成，appid: {}", appid);
        
        return wxMaService;
    }
} 